package com.ruoyi.pingjiao.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.pingjiao.domain.EvaluationPaper;
import com.ruoyi.pingjiao.domain.EvalutionActivity;

/**
 * 评教活动管理Service接口
 *
 * @author 胡浩鹏
 * @date 2022-10-22
 */
public interface IEvalutionActivityService
{
    /**
     * 查询评教活动管理
     *
     * @param evalutionActivityId 评教活动管理主键
     * @return 评教活动管理
     */
    public EvalutionActivity selectEvalutionActivityByEvalutionActivityId(Long evalutionActivityId);

    public List<EvalutionActivity> selectEvalutionActivityByStudentId(Long studentId,String status);//传studentId与status

    /**
     * 查询评教活动管理列表
     *
     * @param evalutionActivity 评教活动管理
     * @return 评教活动管理集合
     */
    public List<EvalutionActivity> selectEvalutionActivityList(EvalutionActivity evalutionActivity);
    public List<EvalutionActivity> selectEvalutionActivityList2(EvalutionActivity evalutionActivity);



    /**
     * 新增评教活动管理
     *
     * @param evalutionActivity 评教活动管理
     * @return 结果
     */
    public int insertEvalutionActivity(EvalutionActivity evalutionActivity);

    /**
     * 修改评教活动管理
     *
     * @param evalutionActivity 评教活动管理
     * @return 结果
     */
    public int updateEvalutionActivity(EvalutionActivity evalutionActivity);

    /**
     * 修改评教活动管理状态为3（等待统计）
     *
     *  评教活动管理
     * @return 结果
     */
    public int updateEvalutionActivityStatusTo3();
    /**
     * 修改评教活动管理状态为4（评价结束）
     *
     *  评教活动管理
     * @return 结果
     */
    public int updateEvalutionActivityStatusTo4();

    /**
     * 统计
     *
     *  评教活动管理
     * @return 结果
     */
    public int statsEvaluationScoresOfTeacher();

    /**
     * 批量删除评教活动管理
     *
     * @param evalutionActivityIds 需要删除的评教活动管理主键集合
     * @return 结果
     */
    public int deleteEvalutionActivityByEvalutionActivityIds(Long[] evalutionActivityIds);

    /**
     * 删除评教活动管理信息
     *
     * @param evalutionActivityId 评教活动管理主键
     * @return 结果
     */
    public int deleteEvalutionActivityByEvalutionActivityId(Long evalutionActivityId);

    /**
     * @author hpf
     * 检查本次评教活动是否统计完成
     * @return
     */
    public int statNumberOfNoEvaluatedTeacher();
    /**
     * @author hpf
     * 计算评价教师的成绩
     * @return
     */
    public  boolean calculateEvaluationScoresOfTeacher();
    /**
     * 开启活动
     * @author hpf
     *
     */
    public int startEvaluationActivity(long activityId);

    List<String> selectTermByStudentIdAndStatus(Long studentId, String status);

    List<EvaluationPaper> selectActivityPaperByTerm(Long studentId, String term);
}
